/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 28779
 * Date: 2023-10-19
 * Time: 13:27
 */
import java.util.concurrent.Semaphore;

// 信号量
public class Demo2 {
    public static void main(String[] args) throws InterruptedException {
        // 构造方法中, 就可以用来指定计数器的初始值.
        Semaphore semaphore = new Semaphore(4);   //申请 4 个资源
        semaphore.acquire();            // 计数器 -1
        System.out.println("执行 P 操作 1");

        semaphore.acquire();            // 计数器 -1
        System.out.println("执行 P 操作 2");

        semaphore.acquire();            // 计数器 -1
        System.out.println("执行 P 操作 3");

        semaphore.acquire(); 			// 计数器 -1
        System.out.println("执行 P 操作 4");

        semaphore.release();			// 计数器 +1
        System.out.println("执行 V 操作 1");

        semaphore.acquire(); 			// 计数器 -1
        System.out.println("执行 P 操作 5");
    }
}